From 7c56db21d804c110437d491f9b3f7714122ed565 Mon Sep 17 00:00:00 2001 From: Marek Kasik Date: Thu, 11 Sep 2008 08:47:56 +0000 Subject: [PATCH] Bug 551378 - Print dialog: should try UDS when fetching PPD for localhost 2008-09-11 Marek Kasik Bug 551378 - Print dialog: should try UDS when fetching PPD for localhost * modules/printbackends/cups/gtkprintbackendcups.c: Add ability to get PPD file from CUPS through Unix domain socket svn path=/trunk/; revision=21345 --- ChangeLog | 8 ++++++++ modules/printbackends/cups/gtkprintbackendcups.c | 12 ++++++++++++ 2 files changed, 20 insertions(+) diff --git a/ChangeLog b/ChangeLog index a5eee8c69d..45587fda7c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2008-09-11 Marek Kasik + + Bug 551378 - Print dialog: should try UDS when fetching PPD for + localhost + + * modules/printbackends/cups/gtkprintbackendcups.c: Add ability + to get PPD file from CUPS through Unix domain socket + 2008-09-11 Christian Dywan Bug 551567 – DND mark broken diff --git a/modules/printbackends/cups/gtkprintbackendcups.c b/modules/printbackends/cups/gtkprintbackendcups.c index fab45aa962..4fe6748a3c 100644 --- a/modules/printbackends/cups/gtkprintbackendcups.c +++ b/modules/printbackends/cups/gtkprintbackendcups.c @@ -1272,6 +1272,7 @@ cups_request_printer_list_cb (GtkPrintBackendCups *cups_backend, char hostname[HTTP_MAX_URI]; /* Hostname */ char resource[HTTP_MAX_URI]; /* Resource name */ int port; /* Port number */ + char *cups_server; /* CUPS server */ list_has_changed = TRUE; cups_printer = gtk_printer_cups_new (printer_name, backend); @@ -1318,9 +1319,20 @@ cups_request_printer_list_cb (GtkPrintBackendCups *cups_backend, } gethostname (uri, sizeof (uri)); + cups_server = g_strdup (cupsServer()); + if (strcasecmp (uri, hostname) == 0) strcpy (hostname, "localhost"); + /* if the cups server is local and listening at a unix domain socket + * then use the socket connection + */ + if ((strstr (hostname, "localhost") != NULL) && + (cups_server[0] == '/')) + strcpy (hostname, cups_server); + + g_free (cups_server); + cups_printer->hostname = g_strdup (hostname); cups_printer->port = port; -- 2.30.2